package com.cisdi.analysis.repository.mapper;

import com.cisdi.analysis.common.page.Page;
import com.cisdi.analysis.core.dto.AnalysisDataDTO;
import com.cisdi.analysis.core.vo.ResultVO;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

import java.util.List;

@Component
public interface AnalysisDataMapper {

    /**
     * 批量插入数据
     * @param list 数据链表
     * @return
     */
    int dataImport(List<AnalysisDataDTO> list);

    /**
     * 求每一列的平均数
     * @return
     */
    ResultVO average();

    /**
     * 求每一列的标准差
     * @return
     */
    ResultVO standardDeviation();

    /**
     * 求得离群值个数
     * @param field 列名
     * @param min   outlier
     * @param max   最大值
     * @return 个数
     */
    int selectOutlier(@Param("field") String field, @Param("min") Double min, @Param("max") Double max);

    /**
     * 查询因子数
     * @return 因子数
     */
    Integer getFactor();

    /**
     * 分页查询
     * @return
     */
    List<ResultVO> getData(@Param("pageStart") Long pageStart, @Param("pageSize") Integer pageSize);

    /**
     * 获取总记录数
     * @return 总记录数
     */
    long getTotalNum();
}